home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Libraries / TransSkel / Demos / Pascal Demos / MultiSkel / MultiSkel.p < prev    next >
Text File  |  1994-02-23  |  1KB  |  86 lines

  1. program MultiSkel;
  2.  
  3.     uses
  4.         TransSkel, MultiSkelRgn, MultiSkelZoom, MultiSkelEdit, MultiSkelHelp, MultiSkelGlobals;
  5.  
  6.     const
  7.  
  8.         open = 1;
  9.         close = 2;
  10.         quit = 4;
  11.  
  12.     var
  13.  
  14.         fileMenu: MenuHandle;
  15.  
  16.  
  17.     procedure MyShowWindow (wind: WindowPtr);
  18.     begin
  19.         if (WindowPeek(wind)^.visible = false) then
  20.             begin
  21.                 SelectWindow(wind);
  22.                 ShowWindow(wind);
  23.             end;
  24.     end;
  25.  
  26.  
  27.     procedure DoAppleMenu (item: Integer);
  28.         var
  29.             ignore: Integer;
  30.     begin
  31.         ignore := SkelAlert(aboutAlrtRes, SkelDlogFilter(nil, true), skelPositionOnMainDevice);
  32.         SkelRmveDlogFilter;
  33.     end;
  34.  
  35.  
  36.     procedure DoFileMenu (item: Integer);
  37.     begin
  38.         case item of
  39.             open: 
  40.                 begin
  41.                     MyShowWindow(rgnWind);
  42.                     MyShowWindow(zoomWind);
  43.                     MyShowWindow(editWind);
  44.                     MyShowWindow(helpWind);
  45.                 end;
  46.             close: 
  47.                 SkelClose(FrontWindow);
  48.             quit: 
  49.                 SkelStopEventLoop;
  50.         end;
  51.     end;
  52.  
  53.  
  54.     procedure SetupMenus;
  55.         var
  56.             ignore: Boolean;
  57.     begin
  58.         SkelApple('About MultiSkel…', @DoAppleMenu);
  59.         fileMenu := GetMenu(fileMenuRes);
  60.         ignore := SkelMenu(fileMenu, @DoFileMenu, nil, false, false);
  61.         editMenu := GetMenu(editMenuRes);
  62.         ignore := SkelMenu(editMenu, @EditWindEditMenu, nil, false, true);
  63.     end;
  64.  
  65.  
  66.     procedure SetWaitTimes;
  67.         var
  68.             f: LongInt;
  69.             b: LongInt;
  70.     begin
  71.         SkelGetWaitTimes(f, b);
  72.         b := f;
  73.         SkelSetWaitTimes(f, b);
  74.     end;
  75.  
  76. begin
  77.     SkelInit(nil);
  78.     SetWaitTimes;
  79.     SetupMenus;
  80.     RgnWindInit;
  81.     ZoomWindInit;
  82.     EditWindInit;
  83.     HelpWindInit;
  84.     SkelEventLoop;
  85.     SkelCleanup;
  86. end.